#include <bits/stdc++.h>
using namespace std;

class Solution1 {
public:
	int removeElement(vector<int>& nums, int val) {
		int size = nums.size();
		for (int i = 0; i < size; i++) {
			if (nums[i] == val) { // 发现需要移除的元素，就将数组集体向前移动一位
				for (int j = i + 1; j < size; j++) {
					nums[j - 1] = nums[j];
				}
				i--; // 因为下标i以后的数值都向前移动了一位，所以i也向前移动一位
				size--; // 此时数组的大小-1
			}
		}
		return size;
		
	}
};

class Solution2 {
public:
	int removeElement(vector<int>& nums, int val) {
		int slowIndex = 0;
		for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {
			if (val != nums[fastIndex]) {
				nums[slowIndex++] = nums[fastIndex];
			}
		}
		return slowIndex;
	}
};


class Test {
public:
	int removeElement(vector<int>& nums, int val) {
		int slow = 0;
		for(int fast = 0;fast < nums.size();fast++){
			if(nums[fast] != val){
				nums[slow++] = nums[fast];
			}
		}
		return slow;
	}
};



int main(){
	
	
	return 0;
}
